package tech.waterism.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

import java.io.Serializable;
import java.util.Date;

/**
 * 水文模型预报方案输入表(FPInput)实体类
 *
 * @author zhe.xiong
 * @since 2021-10-09 13:38:49
 */
@Data
//@TableName(value = "f_p_input")
@ApiModel(value = "水文模型预报方案输入表")
public class FPInput implements Serializable {
    private static final long serialVersionUID = -53532475136822685L;

    /**
     * 预报站号
     */
//    @MppMultiId
    @ApiModelProperty(value = "预报站号")
    private String stcd;

    /**
     * 方案代码
     */
//    @MppMultiId
    @ApiModelProperty(value = "方案代码")
    private String plcd;

    /**
     * 方案输入代码
     */
//    @MppMultiId
    @ApiModelProperty(value = "方案输入代码")
    private String arcd;

    /**
     * 方案输入类型（B—流域；R—河道站；S—水库站；D—闸坝站）
     */
    @ApiModelProperty(value = "方案输入类型（B—流域；R—河道站；S—水库站；D—闸坝站）")
    private String artp;

    /**
     * 模型代码集
     */
    @ApiModelProperty(value = "模型代码集")
    private String mdcds;

    /**
     * 气象标识符
     */
    @ApiModelProperty(value = "气象标识符")
    private Integer qixh;

    /**
     * 创建人
     */
//    @JsonIgnore
//    @TableField(fill = FieldFill.INSERT)
//    @ApiModelProperty(value = "创建人")
//    private String createdBy;
//
//    /**
//     * 创建时间
//     */
//    @JsonIgnore
//    @TableField(fill = FieldFill.INSERT)
//    @ApiModelProperty(value = "创建时间")
//    private Date creationDate;
//
//    /**
//     * 更新人
//     */
//    @JsonIgnore
//    @TableField(fill = FieldFill.INSERT_UPDATE)
//    @ApiModelProperty(value = "更新人")
//    private String lastUpdatedBy;
//
//    /**
//     * 更新时间
//     */
//    @JsonIgnore
//    @TableField(fill = FieldFill.INSERT_UPDATE)
//    @ApiModelProperty(value = "更新时间")
//    private Date lastUpdateDate;

    /**
     * 删除标记
     */
    @JsonIgnore
//    @TableLogic
    @ApiModelProperty(value = "删除标记")
    private Integer delFlag;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;

        if (o == null || getClass() != o.getClass()) return false;

        FPInput fpInput = (FPInput) o;

        return new EqualsBuilder().append(stcd, fpInput.stcd).append(plcd, fpInput.plcd).isEquals();
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder(17, 37).append(stcd).append(plcd).toHashCode();
    }
}

